#include <iostream>
#include <functional>
#include <string>

class Task //v3线程创建 线程函数数据
{
    typedef std::function<void(const std::string&,const uint16_t&,const int&)> func_t;
public:
    Task() {}
    Task(const std::string& ip,const  uint16_t& port,const int& sockfd,const func_t& func)
        : _ip(ip), _port(port), _sockfd(sockfd), _func(func)
    {}

    Task& operator=(const Task& t)
    {
        _ip = t._ip;
        _port = t._port;
        _sockfd = t._sockfd;
        _func = t._func;
    }

    void operator()() { _func(_ip,_port,_sockfd); }

    std::string _ip;
    uint16_t _port;
    int _sockfd;
    func_t _func;
};